Julia's BLOG

LeetCode-3 无重复字符的最长子串

2019-02-13

1. 题面

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

1
2
3
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

1
2
3
输入: "bbbbb"
输出: 1
解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

1
2
3
4
输入: "pwwkew"
输出: 3
解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

2. 解答

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class Solution {
public int lengthOfLongestSubstring(String s) {
if(s.length() == 1)
return 1;

char[] str = s.toCharArray();
String res = "";
String tmp = "";

for(int i = 0;i<str.length;i++) {
for(int j = i;j<str.length;j++) {
if(i == j) {
tmp = str[j] + "";
} else {
if(!tmp.contains(str[j] + "")) {
tmp += str[j];
}else {
if(res.length() < tmp.length()) {
res = tmp;
}
break;
}
if(j == str.length-1) {
if(res.length() < tmp.length()) {
res = tmp;
}
}
}
}
}
System.out.println(res);
return res.length();
}
}
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章